//
//  ESToolbarView.h
//  
//
//  Created by fuyoufang on 15/10/15.
//
//

#import <UIKit/UIKit.h>
// 文本框的最小高度
#define kInputTextViewMinHeight 36
// 文本框的最大高度
#define kInputTextViewMaxHeight 200
// 文本框的上下边距
#define kVerticalPadding 5
// 文本框的左右边距
#define kHorizontalPadding 8

/**
 * 消息发送的类型
 */
typedef enum : NSUInteger {
    MessageInputStyleKeyboard, // 文本
    MessageInputStyleRecord, // 语音
    MessageInputStyleMore, // 更多
    MessageInputStyleFacial, // 表情
} MessageInputStyle;

@class ESToolbarView;
@class XHMessageTextView;

@protocol ESToolbarViewDelegate <NSObject>
#pragma mark 录音按钮
/** 按下录音按钮开始录音 */
- (void)didStartRecordingVoiceAction:(ESToolbarView *)toolbarView;

/** 手指向上滑动取消录音 */
- (void)didCancelRecordingVoiceAction:(ESToolbarView *)toolbarView;

/** 松开手指完成录音 */
- (void)didFinishRecoingVoiceAction:(ESToolbarView *)toolbarView;

/** 当手指离开按钮的范围内时，主要为了通知外部的HUD */
- (void)didDragOutsideAction:(ESToolbarView *)toolbarView;

/** 当手指再次进入按钮的范围内时，主要也是为了通知外部的HUD */
- (void)didDragInsideAction:(ESToolbarView *)toolbarView;

#pragma mark style
- (void)toolbarView:(ESToolbarView *)toolbarView didChangedMessageInputStyle:(MessageInputStyle)style;

#pragma mark inputTextView
- (void)toolbarView:(ESToolbarView *)toolbarView inputTextViewWillBeginEditing:(UITextView *)textField;

- (void)toolbarView:(ESToolbarView *)toolbarView inputTextViewDidBeginEditing:(UITextView *)textField;

- (void)toolbarView:(ESToolbarView *)toolbarView inputTextViewDidEnterReturn:(UITextView *)textField;

- (void)toolbarView:(ESToolbarView *)toolbarView inputTextViewDidEndEditing:(UITextView *)textField;

#pragma mark 高度
- (void)toolbarView:(ESToolbarView *)toolbarView needChangeToHeight:(CGFloat)height;

@end

@interface ESToolbarView : UIView

+ (instancetype)toolbarView;

@property (nonatomic, weak) id<ESToolbarViewDelegate> delegate;
@property (weak, nonatomic) IBOutlet XHMessageTextView *messageTextView;
/**
 *  默认高度
 *
 *  @return 默认高度
 */
+ (CGFloat)defaultHeight;
@end
